package com.film.myfunctions;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 自定义jstl函数库
 * @author 姜海洋
 */
public class Myfunctions {

	/**
	 * 格式化日期
	 * @param date
	 * @return
	 */
	public static String formatDate(String date){
		//2021-06-06  --->  6月6日
		String[] arr = date.split("-");
		if(arr[1].startsWith("0")) {
			arr[1] = arr[1].substring(1);
		}
		if(arr[2].startsWith("0")) {
			arr[2] = arr[2].substring(1);
		}
		String str = arr[1]+"月"+arr[2]+"日";
		return str;
    }
	
	/**
	 * 格式化时间
	 * @param time
	 * @return
	 */
	public static String formatTime(String time) {
		//08:05:00   --->   8:05
		String[] arr = time.split(":");
		if(arr[0].startsWith("0")) {
			arr[0] = arr[0].substring(1);
		}
		String str = arr[0]+":"+arr[1];
		return str;
	}
	
	/**
	 * 格式化手机号，把手机号中间4位变成*
	 * @param phoneNum
	 * @return
	 */
	public static String formatPhoneNum(String phoneNum) {
		return phoneNum.replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2");
	};
	
	/**
	 * 格式化座位编号
	 * 4-2  --> 4排2座
	 * @param seatNumber 座位编号
	 * @return
	 * 		返回格式化后的座位编号
	 */
	public static String formatSeatNumber(String seatNumber) {
		String[] arr = seatNumber.split("-");
		return arr[0]+"排"+arr[1]+"座";
	}
	
	/**
	 * 根据日期获取星期几
	 * @param datetime 具体时间
	 * @return
	 */
	public static String dateToWeek(String datetime) {
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
        String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
        Calendar cal = Calendar.getInstance(); // 获得一个日历
        Date datet = null;
        try {
            datet = f.parse(datetime);
            cal.setTime(datet);
        } catch (Exception e) {
            e.printStackTrace();
        }
        int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个星期中的某天。
        if (w < 0)
            w = 0;
        return weekDays[w];
    }
	
	/**
	 * 格式化座位信息，将座位拆解成几排几列
	 * @param seatNum座位编号
	 * @return
	 */
	public static String[] dealSeat(String seatNum) {
		return seatNum.split("-");
	}
	
}
